package test01.way;

import entity.Student;

import java.lang.reflect.Member;

/**
 * 获取类的 Class 对象 -- 方法三
 *  对象.getClass() : 获取当前对象的类的 Class 对象
 *  Class对象.getSuperClass() ：获取 Class 对象指向类的父类的 Class 对象
 * @Author lzp
 * @Date 2024-03-25
 */
public class Test03 {
    public static void main(String[] args) {
        Student stu= new Student();

        // 第一：获取类的 Class 对象 - 一切的反射都必须从 Class 对象开始
        // clazz -> Student类的Class对象
        Class<?> clazz = stu.getClass();

        // superclass -> Student类的父类 - Object类的Class对象
        Class<?> superclass =clazz.getSuperclass();

        // 第二：通过 Class 对象，获取类的相关信息 - 获取定义的方法
        Member[] members = clazz.getDeclaredMethods();
        for (Member member : members) {
            System.out.println(member.getName());
        }
    }
}
